package com.ruoyi.htgl.htbz.mapper;

import java.util.List;

import com.ruoyi.htgl.htbz.domain.*;

/**
 * 合同编制Mapper接口
 *
 * @author huacai
 * @date 2024-07-03
 */
public interface HtglHtbzMapper
{
    /**
     * 查询合同编制
     *
     * @param htbzId 合同编制主键
     * @return 合同编制
     */
    public HtglHtbz selectHtglHtbzByHtbzId(String htbzId);

    /**
     * 查询合同编制列表
     *
     * @param htglHtbz 合同编制
     * @return 合同编制集合
     */
    public List<HtglHtbz> selectHtglHtbzList(HtglHtbz htglHtbz);

    /**
     * 新增合同编制
     *
     * @param htglHtbz 合同编制
     * @return 结果
     */
    public int insertHtglHtbz(HtglHtbz htglHtbz);

    /**
     * 修改合同编制
     *
     * @param htglHtbz 合同编制
     * @return 结果
     */
    public int updateHtglHtbz(HtglHtbz htglHtbz);

    /**
     * 删除合同编制
     *
     * @param htbzId 合同编制主键
     * @return 结果
     */
    public int deleteHtglHtbzByHtbzId(String htbzId);

    /**
     * 批量删除合同编制
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzByHtbzIds(String[] htbzIds);

    /**
     * 批量删除合同附件
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzFjByHtbzIds(String[] htbzIds);

    /**
     * 批量新增合同附件
     *
     * @param htglHtbzFjList 合同附件列表
     * @return 结果
     */
    public int batchHtglHtbzFj(List<HtglHtbzFj> htglHtbzFjList);


    /**
     * 通过合同编制主键删除合同附件信息
     *
     * @param htbzId 合同编制ID
     * @return 结果
     */
    public int deleteHtglHtbzFjByHtbzId(String htbzId);

    /**
     * 新增附件
     * @param htglHtbzFj
     * @return
     */
    int insertHtFjByHtBzId(HtglHtbzFj htglHtbzFj);

    /**
     * 根据主表ID查询附件列表
     * @param htglHtbzFj
     * @return
     */
    List<HtglHtbzFj> selectHtBzFjList(HtglHtbzFj htglHtbzFj);

    /**
     * 批量删除年度计划和考核目标
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzNdjhByHtbzIds(String[] htbzIds);

    /**
     * 批量新增年度计划和考核目标
     *
     * @param htglHtbzNdjhList 年度计划和考核目标列表
     * @return 结果
     */
    public int batchHtglHtbzNdjh(List<HtglHtbzNdjh> htglHtbzNdjhList);


    /**
     * 通过合同编制主键删除年度计划和考核目标信息
     *
     * @param htbzId 合同编制ID
     * @return 结果
     */
    public int deleteHtglHtbzNdjhByHtbzId(String htbzId);

    /**
     * 获取合同编制与年度计划详细信息
     * @param htbzId
     * @return
     */
    HtglHtbz selectHtglHtbzNdjhByHtbzId(String htbzId);

    /**
     * 获取合同编制与项目预算经费详细信息
     * @param htbzId
     * @return
     */
    HtglHtbz selectHtglHtbzYsJfByHtbzId(String htbzId);

    /**
     * 获取合同编制与课题承担人员详细信息
     * @param htbzId
     * @return
     */
    HtglHtbz selectHtglHtbzCdRyByHtbzId(String htbzId);

    /**
     * 批量删除项目预算经费
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzYsjfByHtbzIds(String[] htbzIds);

    /**
     * 批量新增项目预算经费
     *
     * @param htglHtbzYsjfList 项目预算经费列表
     * @return 结果
     */
    public int batchHtglHtbzYsjf(List<HtglHtbzYsjf> htglHtbzYsjfList);


    /**
     * 通过合同编制主键删除项目预算经费信息
     *
     * @param htbzId 合同编制ID
     * @return 结果
     */
    public int deleteHtglHtbzYsjfByHtbzId(String htbzId);

    /**
     * 批量删除项目经费支付计划
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzZfjhByHtbzIds(String[] htbzIds);

    /**
     * 批量新增项目经费支付计划
     *
     * @param htglHtbzZfjhList 项目经费支付计划列表
     * @return 结果
     */
    public int batchHtglHtbzZfjh(List<HtglHtbzZfjh> htglHtbzZfjhList);


    /**
     * 通过合同编制主键删除项目经费支付计划信息
     *
     * @param htbzId 合同编制ID
     * @return 结果
     */
    public int deleteHtglHtbzZfjhByHtbzId(String htbzId);

    /**
     * 获取合同编制与项目经费支付计划详细信息
     * @param htbzId
     * @return
     */
    HtglHtbz selectHtglHtbzZfJhByHtbzId(String htbzId);

    /**
     * 批量删除课题承担人员
     *
     * @param htbzIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzCdryByHtbzIds(String[] htbzIds);

    /**
     * 批量新增课题承担人员
     *
     * @param htglHtbzCdryList 课题承担人员列表
     * @return 结果
     */
    public int batchHtglHtbzCdry(List<HtglHtbzCdry> htglHtbzCdryList);


    /**
     * 通过合同编制主键删除课题承担人员信息
     *
     * @param htbzId 合同编制ID
     * @return 结果
     */
    public int deleteHtglHtbzCdryByHtbzId(String htbzId);

    /**
     * 批量删除合同附件
     *
     * @param fjIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHtglHtbzFjByFjIds(Integer[] fjIds);
}
